Skip to content

docs(changelog): M65_001 dashboard error voice + sign-in card lift + install/save race fixes#51

Open
indykish wants to merge 1 commit into
mainfrom
chore/m65-001-auth-e2e-changelog
Open

docs(changelog): M65_001 dashboard error voice + sign-in card lift + install/save race fixes#51
indykish wants to merge 1 commit into
mainfrom
chore/m65-001-auth-e2e-changelog

Conversation

@indykish
Copy link
Copy Markdown
Contributor

@indykish indykish commented May 12, 2026

Summary

Adds a May 12, 2026 <Update> block covering the user-visible slice of usezombie/usezombie#324 (M65_001):

  • Operator-first dashboard error vocabulary (presentError keyed on curated UZ-XXX-NNN codes).
  • Sign-in card lifted from --surface-1 to --surface-2 on the auth route.
  • Two router.refresh() after router.push() races fixed (install + config save).
  • Vitest flake cleanup as a one-liner.

Test-side acceptance coverage expansion is internal and intentionally not surfaced here. No CLI changes; no API changes.

Test plan

  • Mintlify preview renders the new entry directly under the leading <Tip> and above the prior May 11 entry.
  • No empty section headings.
  • Tags match the actual surface area (UI, Bug fixes, Testing).

🤖 Generated with Claude Code

Greptile Summary

Adds a single <Update> block dated May 12, 2026 to changelog.mdx, documenting the M65_001 release slice: the presentError error-vocabulary helper, a sign-in card contrast fix, and two router.refresh/router.push race corrections in InstallZombieForm.tsx and ZombieConfig.tsx.

  • presentError entry describes eight curated UZ-XXX-NNN codes with operator-readable titles/bodies and explains the detection-and-replace logic for generic server error strings.
  • Sign-in card fix notes the surface lift from --surface-1 to --surface-2 with --border-strong framing; the token names should be verified against the canonical tokens.css (see inline comment).
  • Router race fixes and Vitest flake cleanup are accurately described; the ## CLI section correctly signals no zombiectl changes.

Confidence Score: 4/5

Documentation-only change; no runtime code is modified. The two style issues noted do not affect site rendering.

The entry accurately describes the M65_001 surface area and uses proper MDX structure. Two minor issues: "dashboard" is used throughout instead of the product-canonical "Mission Control", and two token names (--surface-2, --border-strong) are referenced without appearing in the verified token list in AGENTS.md. If those tokens are genuine, the copy is correct; if not, the changelog misstates the implementation detail.

changelog.mdx — verify --surface-2 and --border-strong against the design-system tokens.css before merging.

Important Files Changed

Filename Overview
changelog.mdx Adds May 12, 2026 Update block covering presentError helper, sign-in card surface lift, and two router.refresh race fixes; uses "dashboard" instead of the canonical "Mission Control" term, and references --surface-2/--border-strong tokens not listed in AGENTS.md's verified token set.

Flowchart

%%{init: {'theme': 'neutral'}}%%
flowchart TD
    A["API response error"] --> B{errorCode present?}
    B -- Yes --> C["Look up UZ-XXX-NNN in curated map"]
    C --> D["Render operator-first title + body"]
    B -- No --> E{"Generic 'Failed to …' message?"}
    E -- Yes --> F["Detect + replace with fallback copy"]
    E -- No --> G["Render message as-is"]
    D --> H["presentError({errorCode, message, action})"]
    F --> H
    G --> H
Loading
Prompt To Fix All With AI
Fix the following 2 code review issues. Work through them one at a time, proposing concise fixes.

---

### Issue 1 of 2
changelog.mdx:22-38
**"dashboard" used instead of "Mission Control"**

`AGENTS.md` specifies: _"Use 'Mission Control' for the web dashboard (app.usezombie.com)."_ The new entry uses "dashboard" four times (heading, intro sentence, `presentError` bullet, bug-fix bullet) without ever naming the product surface. The canonical term throughout should be "Mission Control", or at minimum the first mention in the block should establish it and the rest can use a shorthand like "the dashboard" only if that shorthand has been established. The prior May 11 entries exhibit the same drift, but that doesn't exempt new content.

### Issue 2 of 2
changelog.mdx:29
**`--surface-2` and `--border-strong` tokens not in the documented token set**

`AGENTS.md` lists the canonical design-system tokens for this docs repo and only names `--surface-1` as the surface token (and `--bg` above it). Neither `--surface-2` nor `--border-strong` appears in that list, and the sync note says to verify against `tokens.css` before referencing token names. If either token does not exist in the design system, this changelog entry misstates what shipped and could mislead operators who use the token names to customise their own surfaces.

Reviews (1): Last reviewed commit: "docs(changelog): M65_001 dashboard error..." | Re-trigger Greptile

Greptile also left 2 inline comments on this PR.

Context used:

  • Context used - AGENTS.md (source)

…install/save race fixes

Adds a May 12, 2026 entry covering the operator-first error vocabulary
(presentError keyed on UZ-XXX-NNN codes), the cardBox lift from
--surface-1 to --surface-2 on the auth route, and two product fixes
(router.refresh-after-router.push races in InstallZombieForm and
ZombieConfig). Test-side acceptance coverage expansion stays internal
and is not surfaced here.
Comment thread changelog.mdx
Comment on lines +22 to +38
## Dashboard error voice, sign-in card lifted, install/save races fixed

Every "Failed to X" fallback in the dashboard is replaced with operator-first language keyed on backend error codes. The sign-in card no longer disappears into the page background. Two install/save races that left you on the wrong URL after a `router.push` are fixed.

## What's new

- **`presentError({errorCode, message, action})` is the single entry point for dashboard error rendering.** Curated `UZ-XXX-NNN` codes map to a title + body the operator can act on — `UZ-AUTH-401` reads "Your session expired. Sign in again to keep going." instead of "Not authenticated"; `UZ-ZMB-001` reads "We couldn't find that zombie. It may have already been deleted — refresh the list." instead of "Internal Server Error". Eight codes ship today and the helper grows organically as the dashboard surfaces new ones. Useless server `"Failed to …"` messages are detected and replaced rather than concatenated.
- **Sign-in card lifted from `--surface-1` to `--surface-2`** on the auth route, with `--border-strong` on the edge. At `--surface-1` the luminance delta against the page background was 3 units — close to invisible. The card now reads as a card.

## Bug fixes

- **`/zombies/new` install** — `InstallZombieForm.tsx` no longer issues `router.refresh()` after `router.push(/zombies/{id})`. The `force-dynamic` detail route re-resolves on commit; the manual refresh was racing the URL commit and intermittently leaving you on `/zombies/new` with a stale form state. Same fix applied to `ZombieConfig.tsx` for the save-then-navigate path on the detail page.
- **`tooltip` test flake** — restoring vitest's default `exclude` patterns stops the runner from following the `@usezombie/design-system` workspace symlink and executing its tests without their `test-setup.ts`. The "`Invalid Chai property: toBeInTheDocument`" intermittent on `bun run test` is gone.

## CLI

No `zombiectl` shape changes.
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 "dashboard" used instead of "Mission Control"

AGENTS.md specifies: "Use 'Mission Control' for the web dashboard (app.usezombie.com)." The new entry uses "dashboard" four times (heading, intro sentence, presentError bullet, bug-fix bullet) without ever naming the product surface. The canonical term throughout should be "Mission Control", or at minimum the first mention in the block should establish it and the rest can use a shorthand like "the dashboard" only if that shorthand has been established. The prior May 11 entries exhibit the same drift, but that doesn't exempt new content.

Context Used: AGENTS.md (source)

Prompt To Fix With AI
This is a comment left during a code review.
Path: changelog.mdx
Line: 22-38

Comment:
**"dashboard" used instead of "Mission Control"**

`AGENTS.md` specifies: _"Use 'Mission Control' for the web dashboard (app.usezombie.com)."_ The new entry uses "dashboard" four times (heading, intro sentence, `presentError` bullet, bug-fix bullet) without ever naming the product surface. The canonical term throughout should be "Mission Control", or at minimum the first mention in the block should establish it and the rest can use a shorthand like "the dashboard" only if that shorthand has been established. The prior May 11 entries exhibit the same drift, but that doesn't exempt new content.

**Context Used:** AGENTS.md ([source](https://app.greptile.com/review/custom-context?memory=e994989b-b25e-4468-be5d-6bde3ddb0ce6))

How can I resolve this? If you propose a fix, please make it concise.

Note: If this suggestion doesn't match your team's coding style, reply to this and let me know. I'll remember it for next time!

Comment thread changelog.mdx
## What's new

- **`presentError({errorCode, message, action})` is the single entry point for dashboard error rendering.** Curated `UZ-XXX-NNN` codes map to a title + body the operator can act on — `UZ-AUTH-401` reads "Your session expired. Sign in again to keep going." instead of "Not authenticated"; `UZ-ZMB-001` reads "We couldn't find that zombie. It may have already been deleted — refresh the list." instead of "Internal Server Error". Eight codes ship today and the helper grows organically as the dashboard surfaces new ones. Useless server `"Failed to …"` messages are detected and replaced rather than concatenated.
- **Sign-in card lifted from `--surface-1` to `--surface-2`** on the auth route, with `--border-strong` on the edge. At `--surface-1` the luminance delta against the page background was 3 units — close to invisible. The card now reads as a card.
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 --surface-2 and --border-strong tokens not in the documented token set

AGENTS.md lists the canonical design-system tokens for this docs repo and only names --surface-1 as the surface token (and --bg above it). Neither --surface-2 nor --border-strong appears in that list, and the sync note says to verify against tokens.css before referencing token names. If either token does not exist in the design system, this changelog entry misstates what shipped and could mislead operators who use the token names to customise their own surfaces.

Context Used: AGENTS.md (source)

Prompt To Fix With AI
This is a comment left during a code review.
Path: changelog.mdx
Line: 29

Comment:
**`--surface-2` and `--border-strong` tokens not in the documented token set**

`AGENTS.md` lists the canonical design-system tokens for this docs repo and only names `--surface-1` as the surface token (and `--bg` above it). Neither `--surface-2` nor `--border-strong` appears in that list, and the sync note says to verify against `tokens.css` before referencing token names. If either token does not exist in the design system, this changelog entry misstates what shipped and could mislead operators who use the token names to customise their own surfaces.

**Context Used:** AGENTS.md ([source](https://app.greptile.com/review/custom-context?memory=e994989b-b25e-4468-be5d-6bde3ddb0ce6))

How can I resolve this? If you propose a fix, please make it concise.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant